package interfaceusuario;

import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

import propertieslinguagem.SingletonSetaLinguagemEArmazenaResourceBundle;


public class JFrameComMenu extends JFrame implements MouseListener
{
	private JMenuItem opcaoMenuCriarNovoProjetoDeTestes;
	private JMenuItem opcaoMenuCarregarProjetoDeTestes;
	private JMenuItem opcaoExcluirProjetoTestes;
	public JFrameComMenu(String windowName)
	{
		this.setTitle(windowName);
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		this.setSize(d);
		
		this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		ImageIcon iconeMascoteParaJFrame = CriadorImageIcon.criarImageIcon("imagens/meganeiconjframe2.jpg", "testableIcon");
		this.setIconImage(iconeMascoteParaJFrame.getImage());
		
		JMenuBar menuBar = new JMenuBar();
		JMenu menu = new JMenu("menu");
		menuBar.add(menu);
		SingletonSetaLinguagemEArmazenaResourceBundle conheceLinguagemDoSistema = 
				SingletonSetaLinguagemEArmazenaResourceBundle.getInstance();
		String textoOpcaoCriarNovoCasoDeTestes = conheceLinguagemDoSistema.getString("botaoCriarNovoTesteTelaCriarNovoTesteOuCarregarJaExistente");
		this.opcaoMenuCriarNovoProjetoDeTestes = new JMenuItem(textoOpcaoCriarNovoCasoDeTestes);
		
		String textoOpcaoCarregarProjetoTestes = conheceLinguagemDoSistema.getString("botaoCarregarProjetoMenuTopo");
		
		this.opcaoMenuCarregarProjetoDeTestes = new JMenuItem(textoOpcaoCarregarProjetoTestes);
		
		String textoOpcaoExcluirProjetoDeTestes =  conheceLinguagemDoSistema.getString("botaoDeletarProjetoMenuTopo");
		this.opcaoExcluirProjetoTestes = new JMenuItem(textoOpcaoExcluirProjetoDeTestes);
		
		this.opcaoMenuCriarNovoProjetoDeTestes.addMouseListener(this);
		this.opcaoMenuCarregarProjetoDeTestes.addMouseListener(this);
		this.opcaoExcluirProjetoTestes.addMouseListener(this);
		menu.add(opcaoMenuCriarNovoProjetoDeTestes);
		menu.add(opcaoMenuCarregarProjetoDeTestes);
		menu.add(opcaoExcluirProjetoTestes);
		this.setJMenuBar(menuBar);
	}
	
	@Override
	public void mouseClicked(MouseEvent arg0) 
	{
		
	}
	@Override
	public void mouseEntered(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}
	@Override
	public void mouseExited(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}
	@Override
	public void mousePressed(MouseEvent arg0) 
	{
		Object objetoClicado = arg0.getSource();
		if(objetoClicado == this.opcaoMenuCriarNovoProjetoDeTestes)
		{
			//carregar uma nova tela eh demorado, entao vamos mudar o cursor para um loading...
			Cursor cursorEspera = new Cursor(Cursor.WAIT_CURSOR);
			this.setCursor(cursorEspera);
			this.getContentPane().setVisible(false);
			this.getContentPane().removeAll();
			this.getContentPane().invalidate();
			
			TelaInsiraCaminhoDoProjeto telaCriacaoProjetoDeTestes = new TelaInsiraCaminhoDoProjeto(this);
			telaCriacaoProjetoDeTestes.desenharTelaInsiraCaminhoDoProjeto();
			
			Cursor cursorNormal = new Cursor(Cursor.DEFAULT_CURSOR);
			this.setCursor(cursorNormal);
		}
		else if(objetoClicado == this.opcaoMenuCarregarProjetoDeTestes)
		{
			//carregar uma nova tela eh demorado, entao vamos mudar o cursor para um loading...
			Cursor cursorEspera = new Cursor(Cursor.WAIT_CURSOR);
			this.setCursor(cursorEspera);
			
			this.getContentPane().setVisible(false);
			this.getContentPane().removeAll();
			this.getContentPane().invalidate();
			
			TelaEscolhaUmaSuiteDeTestesSalva telaCriacaoTesteMain = new TelaEscolhaUmaSuiteDeTestesSalva(this);
			telaCriacaoTesteMain.desenharTelaEscolhaSuiteDeTestesSalva();
			
			Cursor cursorNormal = new Cursor(Cursor.DEFAULT_CURSOR);
			this.setCursor(cursorNormal);
			
		}
		else if(objetoClicado == this.opcaoExcluirProjetoTestes)
		{
			//carregar uma nova tela eh demorado, entao vamos mudar o cursor para um loading...
			Cursor cursorEspera = new Cursor(Cursor.WAIT_CURSOR);
			this.setCursor(cursorEspera);
			
			this.getContentPane().setVisible(false);
			this.getContentPane().removeAll();
			this.getContentPane().invalidate();

			TelaEscolhaUmaSuiteDeTestesParaDeletar telaDeletarSuiteTestes = new TelaEscolhaUmaSuiteDeTestesParaDeletar(this);
			telaDeletarSuiteTestes.desenharEscolhaUmaSuiteDeTestesParaDeletar();
			
			Cursor cursorNormal = new Cursor(Cursor.DEFAULT_CURSOR);
			this.setCursor(cursorNormal);
		}
		
		
	}
	@Override
	public void mouseReleased(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}
}
